This invention relates to the dynamic allocation of data into a file system. Typically, the capacity of prior art systems is based upon the total allocated capacity of the system. Additional storage capacity is generally added on an as needed basis. If additional storage capacity is needed, the system is shut down so this storage can be physically added and the system reconfigured. These interruptions to system operation result in wasted time and increased complexities for the user.
FIG. 1 illustrates a prior art file system. In this system, an end user or operator enters data objects, such as a byte, file or directory, into an input device 4. In addition to end users, Applications running on the host system can enter data objects. The data object is sent to a data container 10 for storage on data storage devices, such as disk drives 14, 16 and 18. Each data storage device contains a reference table, 13, 15 and 17, which contains the address of the location where the data object is to be stored. Generally a range of addresses is typically assigned by programs running on the computer for storage of its data to a given block. Once a data object is assigned to a given block of storage addresses, the addresses are not changed even if additional storage is added or there is reduced storage demand.
U.S. Pat. No. Re. 36,989 illustrates a virtual storage system which comprises a processor for allocating space on a data storage means to blocks of sequential data supplied by a host computer. The processor allocates addresses on disk memory means to the data and divides the user data set into subportions by the controller, if necessary, which causes the data to flow from a temporary storage means through disk interface means onto the disks. The disk addresses are then stored by, for example, the user data set name in address memory. When the host later calls for the same data set, the virtual storage system's controller refers to the address memory and determines where on the various disks the data set is stored. The data can then be transmitted back to the host via the temporary storage means for further processing. However, the data cannot be dynamically allocated to other locations on the disks when a disk is too close to capacity so all data can be stored optimally in the data storage means. As a result, much of the file storage capacity that has been allocated remains unused. If there is no data small enough to fit in the remaining space of a disk, that space is left unused. Storage administrators thus cannot manage capacity based on the utilized capacity.
Presently there does not exist a system that tracks the utilization of all file systems placed under its control and dynamically (in real time) re-allocates container space virtually to the user that virtually transfers data to an underutilized container when the current container is running out of space. Furthermore, there needs to be a way to create new containers and resize existing ones.